10000 REM ############################ 10010 REM ############################ 10020 REM ##### ##### 10030 REM ##### R E V E R S I ##### 10040 REM ##### ##### 10100 REM ############################ 10110 REM ############################ 11010 POKE53280,0:POKE53281,0:PRINT"[158][147]" 11020 PRINT " [169] [223][146]  [146]  [146]  [146]  [146]  [146]  [146] [169] [223][146]" 11030 PRINT "  [146]  [146] [161][146][161]  [146]  [146]  [146]  [146]  [146]  [146]  [146]" 11040 PRINT "  [146]  [146] [161][146][161]  [146]  [146]  [146]  [146]  [146]  [146]" 11050 PRINT "  [146]  [146] [161][146][161]  [146]  [146]  [146]  [146]  [146]  [146]  [146]" 11060 PRINT " [223] [146][169] [161][146][161]  [146]  [146]  [146]  [146]  [146] [223] [146][169]" 11070 PRINT "" 11080 PRINT "" 11090 PRINT " KENNEN SIE DIE SPIELREGELN (J/N) ?" 11100 GET A$ 11110 IF A$="J" THEN 11510 11120 IF A$<>"N" THEN 11100 11200 PRINT "[147] S P I E L R E G E L [146]" 11210 PRINT " REVERSI IST EIN ALTES CHINESISCHES " 11220 PRINT " BRETTSPIEL. ZIEL DES SPIELES IST ES" 11230 PRINT " MEHR STEINE AUF DEM BRETT ZU HABEN" 11240 PRINT " ALS DER COMPUTER. DAZU WERDEN" 11250 PRINT " ABWECHSELND EIGENE STEINE SO AUF DAS" 11260 PRINT " BRETT GELEGT, DASS MIT DIESEM STEIN" 11270 PRINT " GEGNERISCHE STEINE AN BEIDEN SEITEN" 11280 PRINT " EINGESCHLOSSEN WERDEN. DIESE STEINE" 11290 PRINT " WERDEN DANN ZU STEINEN EIGENER" 11300 PRINT " FARBE GEMACHT." 11301 PRINT " SPACE[146] DRUECKEN" 11302 GET A$:IF A$<>" " THEN 11302 11310 PRINT "[147] S P I E L R E G E L [146]" 11320 PRINT " SIE SIND AN DER REIHE, WENN HINTER" 11330 PRINT " 'WELCHES FELD MOECHTEN SIE BESETZEN'" 11340 PRINT " DIESE FLAECHE [166][166] IST. DANN GEBEN SIE" 11350 PRINT " DIE ZIFFER AM LINKEN RAND UND DANN" 11360 PRINT " DIE ZIFFER AM OBEREN RAND DES GE-" 11370 PRINT " WUENSCHTEN FELDES EIN. DIESE ZAHLEN" 11380 PRINT " ERSCHEINEN DANN AN STELLE VON [166][166]." 11390 PRINT " WENN SIE KEINEN GUELTIGEN ZUG MACHEN" 11400 PRINT " KOENNEN GEBEN SIE EINE '0' EIN." 11510 PRINT " MOECHTEN SIE BEGINNEN (J/N) ?" 11520 GET M$:IF M$<>"J" AND M$<>"N" THEN 11520 12000 REM BELEGEN DER FELDER ************************************************* 12010 POKE 53,90 12020 POKE 25816,0 12030 DIM ZC(40),SS(40),SC(40) 12040 FOR N=1 TO 8:READ M:NEXT 12050 FOR N=25800 TO 25807:READ M:POKE N,M:NEXT 12060 FOR N=25600 TO 25699:READ M:POKE N,M:POKE N+256,M:NEXT 12070 FOR N=25700 TO 25799:READ M:POKE N,M+100:POKE N+256,M:NEXT 12080 FOR N=26112 TO 26211:READ M:POKE N,M:NEXT 12085 IF FL=1 THEN 12100 12090 FOR N=24090 TO 24457:READ M:POKE N,M:NEXT 12100 RESTORE 12200 H$="" 12210 C$=LEFT$(H$,20)+"WELCHES FELD MOECHTEN SIE BESETZEN? [166][166] [157][157][157]" 12220 D$=H$+"DIESES FELD GIBT ES NICHT" 12230 E$=H$+"DER ZUG IST ILLEGAL " 12240 F$=H$+"ICH BESETZE FELD [157][157][157]" 12250 G$=H$+"ICH KANN NICHT SETZEN " 12260 AS=2:AC=2:FL=0 13000 REM ZEICHNEN DES BILDSCHIRMES ****************************************** 13010 PRINT "[147] 1 2 3 4 5 6 7 8" 13020 PRINT " [176][192][178][192][178][192][178][192][178][192][178][192][178][192][178][192][174] [209]:COMPUTER" 13030 PRINT "1 [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221]" 13040 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179]  [146]:SPIELER" 13050 PRINT "2 [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221]" 13060 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179]" 13070 PRINT "3 [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221] ANZAHL DER FELDER" 13080 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179] [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 13090 PRINT "4 [221][160][221][160][221][160][221][209][221] [146][221] [221][160][221][160][221] COMPUTER: 2" 13100 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179]" 13110 PRINT "5 [221][160][221][160][221][160][221][209][221] [146][221] [221][160][221][160][221] SPIELER : 2" 13120 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179]" 13130 PRINT "6 [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221]" 13140 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179]" 13150 PRINT "7 [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221]" 13160 PRINT " [171][192][219][192][219][192][219][192][219][192][219][192][219][192][219][192][179]" 13170 PRINT "8 [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221]" 13180 PRINT " [173][192][177][192][177][192][177][192][177][192][177][192][177][192][177][192][189]" 13190 IF FL=1 THEN RETURN 13200 PRINT "";TAB(22);"BEDENKZEIT" 13210 PRINT TAB(22);"[163][163][163][163][163][163][163][163][163][163]" 13220 PRINT TAB(22);"COMPUTER:" 13230 PRINT "";TAB(22);"SPIELER :" 14000 REM FRAGE WER BEGINNT ************************************************** 14010 IF M$="N" THEN 40000 15000 REM EINGABE DES ZUGES ************************************************** 15010 ZS=TI 15020 POKE 158,0:PRINT C$; 15030 GOSUB 53000:GET A$:IF A$="" THEN 15030 15040 IF A$="0" THEN SS(SS)=25600:SS=SS+1:GOTO 18000 15050 IF VAL(A$)=0 OR VAL(A$)=9 THEN PRINT D$:GOTO 15020 15060 PRINT LEFT$(H$,20);TAB(36);A$; 15070 GOSUB 53000:GET B$:IF B$="" THEN 15070 15080 IF VAL(B$)=0 OR VAL(B$)=9 THEN PRINT D$:GOTO 15020 15090 PRINT LEFT$(H$,20);TAB(37);B$ 16000 REM ZUG AUF LEGALITAET PRUEFEN UND AUSFUEHREN ************************** 16010 A=VAL(A$+B$)+25600 16020 IF PEEK(A)<>0 THEN PRINT E$:GOTO 15020 16030 D=0 16040 FOR N=1 TO 8 16050 READ J:K=A+J 16060 IF PEEK(K)<>2 THEN 16150 16070 K=K+J 16080 IF PEEK(K)=2 THEN 16070 16090 IF PEEK(K)<>1 THEN 16150 16100 K=A+J 16110 H=(K-25600)/10 16120 POKE(1025.5+INT(H)*80+(H-INT(H))*20),160 16130 POKE K,1:K=K+J:D=D+1 16140 IF PEEK(K)=2 THEN 16110 16150 NEXT N:RESTORE 16160 IF D=0 THEN PRINT E$:GOTO 15020 16170 POKE A,1 16180 H=(A-25600)/10 16190 POKE(1025.5+INT(H)*80+(H-INT(H))*20),160 16200 IF FL=1 THEN RETURN 16210 SS(SS)=A:SS=SS+1 17000 REM BERECHNUNG DER FELDERZAHL ****************************************** 17010 AS=AS+D+1:AC=AC-D 17020 PRINT LEFT$(H$,9);TAB(32);AC;"[157] " 17030 PRINT "";TAB(32);AS;"[157] " 17040 IF FL=1 THEN RETURN 18000 REM ZEITRECHNUNG SPIELER *********************************************** 18010 GOSUB 53000 18020 TS=TS+(TI-ZS)/60 18030 IF A$="0" THEN 40000 19000 REM ZUGFELD VERAENDERN ************************************************* 19010 A=A+512 19020 FOR N=1 TO 8 19030 READ J 19040 POKE (A+J),(PEEK(A+J)+1) 19050 NEXT N:RESTORE 19060 POKE A,0 19999 IF AS+AC=64 THEN 50000 20000 REM WERTUNG DER FELDER ************************************************* 20010 N=25611 20020 IF PEEK(N)<>2 THEN 20210 20030 N=N+10 20040 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20110 20050 IF PEEK(N)=2 THEN 20030 20060 N=N+10 20070 IF PEEK(N)=1 THEN 20060 20080 POKE N+100,172 20110 N=25611 20130 N=N+1 20140 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20190 20150 IF PEEK(N)=2 THEN 20130 20160 N=N+1 20170 IF PEEK(N)=1 THEN 20160 20180 POKE N+100,172 20190 N=25711:POKE N+11,160:POKE N+21,150:POKE N+22,150:POKE N+12,150 20210 N=25618 20220 IF PEEK(N)<>2 THEN 20410 20230 N=N+10 20240 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20310 20250 IF PEEK(N)=2 THEN 20230 20260 N=N+10 20270 IF PEEK(N)=1 THEN 20260 20280 POKE N+100,172 20310 N=25618 20330 N=N-1 20340 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20390 20350 IF PEEK(N)=2 THEN 20330 20360 N=N-1 20370 IF PEEK(N)=1 THEN 20360 20380 POKE N+100,172 20390 N=25718:POKE N+9,160:POKE N+19,150:POKE N+18,150:POKE N+8,150 20410 N=25681 20420 IF PEEK(N)<>2 THEN 20610 20430 N=N-10 20440 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20510 20450 IF PEEK(N)=2 THEN 20430 20460 N=N-10 20470 IF PEEK(N)=1 THEN 20460 20480 POKE N+100,172 20510 N=25681 20530 N=N+1 20540 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20590 20550 IF PEEK(N)=2 THEN 20530 20560 N=N+1 20570 IF PEEK(N)=1 THEN 20560 20580 POKE N+100,172 20590 N=25781:POKE N-9,160:POKE N-19,150:POKE N-18,150:POKE N-8,150 20610 N=25688 20620 IF PEEK(N)<>2 THEN 21000 20630 N=N-10 20640 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20710 20650 IF PEEK(N)=2 THEN 20630 20660 N=N-10 20670 IF PEEK(N)=1 THEN 20660 20680 POKE N+100,172 20710 N=25688 20720 IF PEEK(N)<>2 THEN 20100 20730 N=N-1 20740 IF PEEK(N)=0 THEN POKE N+100,170:GOTO 20790 20750 IF PEEK(N)=2 THEN 20730 20760 N=N-1 20770 IF PEEK(N)=1 THEN 20760 20780 POKE N+100,172 20790 N=25788:POKE N-11,160:POKE N-21,150:POKE N-22,150:POKE N-12,150 21000 REM ENDE ECKENBEWERTUNG 40000 REM COMPUTERZUEGE ****************************************************** 40010 ZC=TI 40020 POKE 16,10*RND(1) 40030 SYS 24090 40040 IF PEEK(25812)=0 THEN PRINT G$:SC(SC)=25600:SC=SC+1:GOTO 48000 45000 REM AUSGABE UND AUSFUEHRUNG DES ZUGES ********************************** 45010 PRINT F$;PEEK(25813);"[157] " 45015 G=PEEK(25813)+25600 45020 D=0 45030 FOR N=1 TO 8 45040 READ E:F=G+E 45050 IF PEEK(F)<>1 THEN NEXT N:GOTO 45150 45060 F=F+E 45070 IF PEEK(F)=1 THEN 45060 45080 IF PEEK(F)<>2 THEN NEXT N:GOTO 45150 45090 F=G+E 45100 H=(F-25600)/10 45110 POKE(1025.5+INT(H)*80+(H-INT(H))*20),81 45120 POKE F,2:F=F+E:D=D+1 45130 IF PEEK(F)=1 THEN 45100 45140 NEXT N 45150 RESTORE 45160 POKE G,2:H=(G-25600)/10 45170 POKE(1025.5+INT(H)*80+(H-INT(H))*20),81 45180 IF FL=1 THEN RETURN 45190 SC(SC)=G:SC=SC+1 46000 REM ZUGFELD VERAENDERN ************************************************* 46005 G=G+512 46010 POKE G,0 46020 FOR N=1 TO 8 46030 READ M 46040 POKE(G+M),(PEEK(G+M)+1) 46050 NEXT N:RESTORE 47000 REM BERECHNUNG DER FELDERZAHL ****************************************** 47010 AS=AS-D:AC=AC+D+1 47020 PRINT LEFT$(H$,9);TAB(32);AC;"[157] " 47030 PRINT "";TAB(32);AS;"[157] " 47040 IF FL=1 THEN RETURN 48000 REM ZEITRECHNUNG ******************************************************* 48010 ZC(ZA)=(TI-ZC)/60:TC=TC+ZC(ZA):ZA=ZA+1 48020 PRINT LEFT$(H$,15);TAB(32);INT(TC*10)/10 49000 IF AS+AC<64 THEN 15000 50000 REM SPIELENDE ********************************************************** 50010 PRINT LEFT$(H$,20);"DAS SPIEL IST BEENDET " 50020 IF AC>32 THEN PRINT "ICH HABE GEWONNEN " 50030 IF AC=32 THEN PRINT "DAS SPIEL ENDETE REMIS " 50040 IF AC<32 THEN PRINT "SIE HABEN GLUECK GEHABT " 50042 PRINT " " 50045 PRINT "SPACE[146] DRUECKEN" 50050 GET Z$:IF Z$="" THEN 50050 51000 REM ZEITDIAGRAMM ******************************************************* 51002 ZA=0 51005 PRINT "[147]" 51007 FOR N=2 TO 0 STEP -.2:PRINT INT(N*10+.5)/10;"[192]":NEXT 51008 PRINT " 1 5 10 14 21 25 30" 51010 IF ZC(ZA)=0 THEN 51110 51020 ZC=INT(ZC(ZA)*10+.5) 51040 ZE=1950+ZA 51045 IF ZC>20 THEN ZC=20 51050 FOR N=1 TO ZC 51060 POKE(ZE-40*N),160:POKE(ZE-40*N+54272),7 51070 NEXT N 51090 ZA=ZA+1 51100 GOTO 51010 51110 GET Z$:IF Z$<>" " THEN 51110 52000 REM SPIEL WIEDERHOLEN ************************************************** 52010 FL=1 52015 FOR N=1TO16:READ M:NEXT:FOR N=25600 TO 25699:READ M:POKE N,M:NEXT:RESTORE 52020 GOSUB 13000 52025 PRINT LEFT$(H$,20);"S P A C E[146] DRUECKEN" 52030 SS=0:SC=0:AC=2:AS=2 52035 IF M$="N" THEN 52060 52040 A=SS(SS):SS=SS+1 52050 IF A<>25600 THEN GOSUB 16030:GOSUB 17000:Z=Z+1 52051 IF Z=60 THEN 61000 52052 GET Z$:IF Z$<>" " THEN 52052 52060 G=SC(SC):SC=SC+1 52070 IF G<>25600 THEN GOSUB 45020:GOSUB 47000:Z=Z+1 52080 IF Z=60 THEN 52110 52090 GET Z$:IF Z$=" " THEN 52040 52100 GOTO 52090 52110 PRINT LEFT$(H$,20);" MOECHTEN SIE NOCH EINMAL SPIELEN ?" 52120 GET A$:IF A$="J" THEN CLR:FL=1:GOTO 11510 52130 IF A$<>"N" THEN 52120 52140 END 53000 REM ZEITRECHNUNG SPIELER *********************************************** 53010 PRINT "";TAB(32);INT((TS+(TI-ZS)/60)*10)/10 53020 RETURN 59998 DATA 11,10,9,1,-1,-9,-10,-11 59999 DATA 1,9,10,11,255,247,246,245 60000 DATA 9,9,9,9,9,9,9,9,9,9 60010 DATA 9,0,0,0,0,0,0,0,0,9 60020 DATA 9,0,0,0,0,0,0,0,0,9 60030 DATA 9,0,0,0,0,0,0,0,0,9 60040 DATA 9,0,0,0,2,1,0,0,0,9 60050 DATA 9,0,0,0,2,1,0,0,0,9 60060 DATA 9,0,0,0,0,0,0,0,0,9 60070 DATA 9,0,0,0,0,0,0,0,0,9 60080 DATA 9,0,0,0,0,0,0,0,0,9 60090 DATA 9,9,9,9,9,9,9,9,9,9 60100 DATA 00,00,00,00,00,00,00,00,00,00 60110 DATA 00,80,40,60,55,55,60,40,80,00 60120 DATA 00,40,00,35,35,35,35,00,40,00 60130 DATA 00,60,35,41,40,40,41,35,60,00 60140 DATA 00,60,35,40,00,00,40,35,60,00 60150 DATA 00,60,35,40,00,00,40,35,60,00 60160 DATA 00,60,35,41,40,40,41,35,60,00 60170 DATA 00,40,00,35,35,35,35,00,40,00 60180 DATA 00,80,40,60,55,55,60,40,80,00 60190 DATA 00,00,00,00,00,00,00,00,00,00 60200 DATA 000,000,000,000,000,000,000,000,000,000 60210 DATA 000,127,127,127,127,127,127,127,127,000 60220 DATA 000,127,127,127,127,127,127,127,127,000 60230 DATA 000,127,127,128,128,128,128,127,127,000 60240 DATA 000,127,127,128,000,000,128,127,127,000 60250 DATA 000,127,127,128,000,000,128,127,127,000 60260 DATA 000,127,127,128,128,128,128,127,127,000 60270 DATA 000,127,127,127,127,127,127,127,127,000 60280 DATA 000,127,127,127,127,127,127,127,127,000 60290 DATA 000,000,000,000,000,000,000,000,000,000 61000 END 61700 DATA 169,0,141,212,100,141,213,100,169,11,141,214,100 61800 DATA 174,214,100,189,0,102,16,67 61900 DATA 169,0,141,208,100,160,200,173,214,100,24,121,0,100,170,189,0,100 61910 DATA 201,1,208,35,238,216,100,138,24,121,0,100,170 61920 DATA 189,0,100,201,1,240,240,201,2,208,10,173,208,100,24 61930 DATA 109,216,100,141,208,100,169,0,141,216,100,200,192,208,208,201 61950 DATA 173,208,100,208,3,76,124,95,174,214,100,189,100,100,24 61960 DATA 109,208,100,141,208,100,56,205,212,100,144,234 62000 DATA 162,11,189,0,100,157,0,101,232,224,89,208,245 62100 DATA 174,214,100,169,2,157,0,101,160,200,185,0,100,24 62110 DATA 109,214,100,170,189,0,101,201,1,208,40,138 62120 DATA 24,121,0,100,170,189,0,101,201,1,240,243 62130 DATA 201,2,208,23,173,214,100,24,121,0,100,170 62140 DATA 189,0,101,201,1,208,8,169,2,157,0,101,138 62150 DATA 208,236,200,192,208,208,196 62160 DATA 169,0,141,211,100,169,11,141,215,100 62180 DATA 173,215,100,170,189,0,101,208,99 62200 DATA 169,0,141,209,100,160,200,173,215,100,24,121,0,100,170,189,0,101 62210 DATA 201,2,208,35,238,216,100,138,24,121,0,100,170 62220 DATA 189,0,101,201,2,240,240,201,1,208,10,173,209,100,24 62230 DATA 109,216,100,141,209,100,169,0,141,216,100,200,192,208,208,201 62250 DATA 173,209,100,240,32 62300 DATA 174,215,100,189,100,101,24,109,209,100,56,205,211,100 62310 DATA 144,3,141,211,100 62350 DATA 56,173,208,100,237,211,100,56,237,212,100,144,43 62360 DATA 238,215,100,173,215,100,201,89,208,138 62400 DATA 56,173,208,100,237,211,100,56,205,212,100 62401 DATA 208,9,165,16,56,201,5,144,7,176,11,144,9 62410 DATA 141,212,100,173,214,100,141,213,100 62500 DATA 238,214,100,173,214,100,201,89,240,3,76,39,94,96